package com.overlord.im.commons.constant;

/**
 * @author wuwei
 * @className MsgCheckType
 * @description 消息确认类型
 * @date 2020/6/1 11:50
 **/
public enum AckType {

    /**
     * 非ACK消息
     */
    NONE(-1),

    /**
     * 客户端发送消息
     */
    MSG_R(0),
    /**
     * 服务端确认消息接收
     */
    MSG_A(1),
    /**
     * 服务端消息发送
     * 至目的
     */
    MSG_N(3),
    /**
     * 目的客户端确认接收消息
     */
    ACK_R(4),
    /**
     * 服务端确认目的客户端已接收
     */
    ACK_A(5),
    /**
     * 服务端通知源客户端消息到达
     */
    ACK_N(6),

    ;

    private int code;

    AckType(int code) {
        this.code = code;
    }

    public static AckType fromCode(int code) {
        AckType[] values = AckType.values();
        for (AckType value : values) {
            if (value.code == code) {
                return value;
            }
        }
        return null;
    }

    public int getCode() {
        return code;
    }
}
